perm filename OO7.FAI[TMP,LCS] blob sn#152810 filedate 1975-03-31 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE OO
C00004 00003	MVM:	HRLI OU,400000(MA)
C00006 00004	BACK:	HRRZI 6,-2(CX)
C00008 00005	FIXIT:	SETZM OUTFLG
C00010 00006	GETO:	MOVEM EN,TMP
C00012 00007	INTRU:	HLLZ EN,JOBCNI
C00014 00008	FILIN:	OPEN DEVN
C00016 ENDMK
C⊗;
	TITLE OO
	EXTERNAL JOBDDT,JOBOPC,$I
	EXTERNAL JOBAPR,JOBTPC,JOBCNI
	EN←7 ↔ TS←10 ↔ OU←11
	CX←13 ↔ MA←14 ↔ N←15
INT:	RESET
	HRRZI EN,INTRU
	HRRZM EN,JOBAPR
	OUTSTR CRLF
STAR:	HRRZI N,MEM
	CLRBFI
	OUTSTR ASTR
	HRLZI EN,21000
	IENBW EN,
	INCHRS EN
	JRST STAR
	CAIN EN,15	;??
	JRST STAR
	HRRZI TS,(N)
INLIN:	HRRZM EN,(TS)
	SETZM 1(TS)
	ADDI TS,2
	INCHRS EN
	CAIA
	JRST INLIN
	SUBI TS,4
	HRRZ EN,2(TS)
	TRNN EN,600
	JRST MAIN

	CAIN EN,303
	JRST PTCALL
	CAIN EN,302
	JRST PTBEG
	CAIN EN,311
	JRST FILIN
	CAIN EN,317
	JRST FILO
	CAIN EN,305
	JRST PTEND
	CAIN EN,612
	JRST DDTST

	SETOM OUTFLG

	TRNE EN,400
	SETOM RFLG
	CAIE EN,301
	JRST .+3
	SETOM ADFLG
	JRST .+4
	CAIE EN,314
	JRST MAIN+1
	SETOM LITF
	ADDI TS,2
	OUTSTR CRLF
MAIN:	OUTSTR SPACE
	HRRZI MA,MEM
	HRRZI CX,(N)
	JRST BGIN
MVM:	HRLI OU,400000(MA)
	HRRZI 6,2
	JRST LMVM
LAEQ:	HRRZI 6,2
	CAIE OU,(MA)
	ADDI 6,2
	SUBI 5,2
	HLL OU,(5)
LMVM:	MOVEM OU,(5)
	SETZM 1(5)
	ADDI 5,2
	SUBI TS,(6)
	ADDI 6,(5)
	HRLZI 6,(6)
	HRRI 6,(5)
	BLT 6,(TS)
	JRST LKMO
FDEQ:	MOVE 4,(MA)
	HRRZI 5,(N)
LKMO:	CAMN 4,(5)
	JRST EQU
ADIN:	ADDI 5,2
	CAIGE 5,(TS)
	JRST LKMO
	ADDI MA,2
BGIN:	CAIGE MA,(N)
	JRST FDEQ
	HRRZI MA,(CX)
	ADDI N,2
	CAIGE N,(TS)
	JRST FDEQ
	JRST BACK
EQU:	HRRZI OU,(MA)
	CAILE TS,2(5)
	CAIG N,2(MA)
	JRST CKLA
	MOVE 6,2(MA)
	CAMN 6,2(5)
	HRRI OU,2(MA)
CKLA:	CAIGE 5,2(N)
	JRST .+4
	HRRZ 6,-2(5)
	CAIN MA,2(6)
	JRST LAEQ
	CAIE OU,(MA)
	JRST MVM
	SKIPGE 1(5)
	JRST ADIN
	HRLI OU,400001(OU)
	AOJ OU,
	MOVEM OU,1(5)
	CAIGE CX,-2(TS)
	JRST ADIN
BACK:	HRRZI 6,-2(CX)
	ADDI 6,2
	SKIPGE 1(6)
	JRST NEGA+1
	SKIPGE OU,(6)
	AOBJN OU,NEGA
	HRRZI OU,(6)
	HRLI OU,400000(6)
NEGA:	MOVEM OU,1(6)
	CAIGE 6,-2(TS)
	JRST BACK+1
	CAIE TS,2(CX)
	JRST NOT1
	SUBI TS,2
	MOVE EN,(TS)
	SUB OU,ONEB
	CAME OU,EN
	CAIN CX,(OU)
	JRST NEW1
	SKIPGE OUTFLG
	AOBJN OU,FIXIT
	HRRZI EN,1(OU)
	AOBJN OU,GETO
NEW1:	SKIPL OUTFLG
	AOBJN OU,GETO
	HRRZI OU,1(CX)
	HRLI OU,400000(OU)
	JRST FIXIT-1
NOT1:	HRRZI EN,-2(TS)
	HRLI EN,400000(CX)
	MOVE OU,EN
	AOBJP OU,
	SKIPL OUTFLG
	JRST GETO
	MOVEM EN,(TS)
	MOVEM OU,1(TS)
	HRRZI OU,1(TS)
	HRLI OU,400000(OU)
	SKIPL ADFLG
	ADDI TS,2
FIXIT:	SETZM OUTFLG
	SKIPGE EN,TMP
	JRST NSEEN
CKFLS:	SKIPGE ADFLG
	JRST ADER
	SKIPGE LITF
	JRST LITA
	SKIPGE RFLG
	JRST RPLACE
	MOVEM OU,(EN)
	JRST GETO
LITA:	SUB OU,ONEB
	MOVEM OU,(EN)
	SETZM LITF
	JRST GETO
NSEEN:	MOVEM EN,(TS)
	HRRZI EN,1(TS)
	ADDI TS,2
	JRST CKFLS
RPLACE:	HRR OU,(OU)
	TLZ OU,400000
	TRO OU,400000
	MOVEM OU,(EN)
	SETZM RFLG
	JRST GETO
ADER:	MOVE 5,(EN)
	MOVE 4,-1(5)
	MOVEM 4,(TS)
	MOVEM 5,1(TS)
	MOVE 4,-1(OU)
	MOVEM 4,2(TS)
	MOVEM OU,3(TS)
	HRRZI OU,2(TS)
	HRLI OU,400000(TS)
	MOVEM OU,4(TS)
	AOBJP OU,
	MOVEM OU,5(TS)
	HRRZI OU,5(TS)
	HRLI OU,400000(OU)
	MOVEM OU,(EN)
	ADDI TS,6
	SETZM ADFLG
GETO:	MOVEM EN,TMP
	HRRM TS,STAR
	HRRZI MA,(TS)
	HRLI MA,700
	ADDI TS,200
	TLZN OU,400000
	TRNN OU,400000
	JRST GOUT
	MOVE EN,OU
	HRRZI 4,777775
	JRST MKOUT
PUDO:	HRLI OU,(4)
	PUSH TS,OU
	MOVE OU,EN
GOUT:	HLRZ 4,OU
MOR:	MOVE EN,(4)
	TLZE EN,400000
	JRST PUDO
	TRNN EN,400000
	JRST DPCH
MKOUT:	HLRZ 6,EN
	HRLI EN,(EN)
	TRZ EN,400000
	MOVEM EN,(6)
	CAIA
DPCH:	IDPB EN,MA
ADO:	ADDI 4,2
	CAIG 4,(OU)
	JRST MOR
	TLNN TS,777777
	JRST TYOUT
	POP TS,OU
	HLRZ 4,OU
	JRST ADO
TYOUT:	HRRZI EN,15
	IDPB EN,MA
	HRRZI EN,12
	IDPB EN,MA
	SETZ EN,
	IDPB EN,MA
	SUBI TS,177
	SKIPGE PTFLG
	JRST PTOUT
	OUTSTR (TS)
	JRST STAR
INTRU:	HLLZ EN,JOBCNI
	TLNN EN,1000
	DISMIS
	HRRZ EN,PTNUM
	HRRZI TS,PTNUM+2
	PTRDS EN
	OUTSTR (TS)
	DISMIS
PTBEG:	SKIPL PTFLG
	PTYGET EN
	JRST STAR
	MOVEM EN,PTNUM
	HRRZI TS,5
	PTJOBX EN
	JRST STAR
	HRRZI TS,3
	PTJOBX EN
	SETOM PTFLG
	JRST STAR-1
PTCALL:	HRRZI TS,CALLC
PTOUT:	MOVE EN,PTNUM
	PTWRS7 EN
	JRST STAR
PTEND:	SETZM PTFLG
	PTYREL PTNUM	;JRST INT?
	JRST INT
DDTST:	SKIPN JOBDDT
	JRST STAR
	JSR $I
	JRST INT
FILIN:	OPEN DEVN
	JRST ERRO
	SETZM FNAME+3
	LOOKUP FNAME
	JRST ERRO
	MOVE EN,INPO
	SETZ TS,
	INPUT EN
	HRRZ EN,SVN
	HRRZI N,SVN(EN)
	HRRM N,STAR
	SUBI EN,200
	JUMPLE EN,INT
	IORI EN,177
	MOVNS EN
	HRLZI EN,-1(EN)
	HRRI EN,SVN+177
	SETZ TS,
	INPUT EN
	CLOSE
	JRST INT
FILO:	SUBI N,SVN
	HRRZM N,SVN
	IORI N,177
	MOVNS N
	HRLZI N,-1(N)
	HRRI N,SVN-1
	OPEN DEVN
	JRST ERRO
	SETZM FNAME+3
	ENTER FNAME
	JRST ERRO
	SETZ 16,
	OUTPUT N
	CLOSE
	JRST INT
ERRO:	OUTSTR QMARK
	JRST INT
QMARK:	45767706424
INPO:	IOWD 200,SVN
DEVN:	17
	SIXBIT/DSK/
	0
FNAME:	SIXBIT/ALY/
	SIXBIT/OOP/
	BLOCK 2
CALLC:	14000,,0
CRLF:	64240,,0
ASTR:	ASCIZ/*/
SPACE:	ASCIZ/ /
ONEB:	1,,1 ↔	TMP:	0
OUTFLG:	0    ↔	RFLG:	0
LITF:	0    ↔	ADFLG:	0
PTFLG:	0    ↔	PTNUM:	0
	LOC 15000
SVN:	0
MEM:	BLOCK 20000
	END INT